home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 041-050 / amok41 / spiele / mastermind / txt / warnung.mod < prev    next >
Text File  |  1993-11-04  |  7KB  |  240 lines

  1. (*********************************************************************
  2.  *
  3.  *  :Program.        Abfrage ob Drucker angeschlossen gibt BOOLEAN zurück
  4.  *  :Author.        Hans Schafft
  5.  *  :Address.        Landfriedstraße 1A - Hinterhaus
  6.  *  :Address.        6900 Heidelberg
  7.  *  :Phone.        06221 - 22416
  8.  *  :Version.        1.0
  9.  *  :Date.        1989
  10.  *  :Copyright.        PD
  11.  *  :Language.        Modula-II
  12.  *  :Translator.    M2Amiga
  13.  *
  14.  *********************************************************************)
  15.  
  16. IMPLEMENTATION MODULE WARNUNG;
  17.  
  18. FROM SYSTEM    IMPORT  ADR, ADDRESS, LONGSET;
  19. FROM Intuition    IMPORT    GadgetPtr, WindowPtr,IntuiText,RemoveGadget,
  20.             IntuiMessagePtr, IDCMPFlags, IDCMPFlagSet,
  21.             boolGadget, reqGadget, ActivationFlags,Request,
  22.                 ActivationFlagSet, Border, Gadget, GadgetFlagSet,
  23.                         Requester, RequesterFlagSet, InitRequester;
  24. FROM Exec       IMPORT  MemReqs, MemReqSet, WaitPort, ReplyMsg, GetMsg;
  25. FROM Graphics    IMPORT    jam2, jam1;
  26.  
  27.  
  28. CONST
  29.  RequBreite = 320;     RequHoehe = 60;
  30.  GadBreite  = 115;     GadHoehe  =  10;
  31.  
  32. VAR
  33.  WarnRequest   : Requester;
  34.  WarnGad1Text  : IntuiText;
  35.  WarnGad1      : Gadget;
  36.  WarnGad1Border: Border;
  37.  WarnGad1Ecken : ARRAY [1..10] OF INTEGER;
  38.  WarnGad2Text  : IntuiText;
  39.  WarnGad2      : Gadget;
  40.  WarnGad2Border: Border;
  41.  WarnGad2Ecken : ARRAY [1..10] OF INTEGER;
  42.  WarnReqBorder : Border;
  43.  WarnReqEcken  : ARRAY [1..10] OF INTEGER;
  44.  WarnReqText   : ARRAY [0..1] OF IntuiText;
  45.  
  46.  
  47. (******************************************************************)
  48. PROCEDURE DruckerAn(wiPtr : WindowPtr) : BOOLEAN;
  49. VAR
  50.   gadPtr    : GadgetPtr;
  51.   gadNr,z    : INTEGER;
  52.   hilfen,y    : INTEGER;
  53.   versuche,x    : INTEGER;
  54.   msgPtr    : IntuiMessagePtr;
  55.   class     : IDCMPFlagSet;
  56.   code        : CARDINAL;
  57.   ende,mode    : BOOLEAN;
  58.  
  59. BEGIN
  60.   IF Request(ADR(WarnRequest),wiPtr) THEN
  61.     ende := FALSE;mode := TRUE;
  62.     REPEAT
  63.       WaitPort(wiPtr^.userPort);
  64.       LOOP
  65.         msgPtr := GetMsg(wiPtr^.userPort);
  66.         IF msgPtr=NIL THEN EXIT END;
  67.  
  68.         class := msgPtr^.class;
  69.         code  := msgPtr^.code;
  70.         gadPtr := msgPtr^.iAddress;
  71.         gadNr := gadPtr^.gadgetID;
  72.  
  73.         ReplyMsg(msgPtr);
  74.  
  75.         IF (class = IDCMPFlagSet{gadgetUp}) THEN
  76.           CASE gadNr OF
  77.           | 1 : mode := TRUE;  ende := TRUE;
  78.           | 2 : mode := FALSE; ende := TRUE;
  79.           ELSE
  80.           END;
  81.         END;
  82.         IF ende THEN EXIT END;
  83.       END; (* LOOP *)
  84.     UNTIL ende;
  85.   END;
  86.   RETURN mode;
  87. END DruckerAn;
  88.  
  89.  
  90. (******************************************************************)
  91. PROCEDURE RichteEinGadgetJa;
  92. BEGIN
  93.    (* Koordinaten für den Rand der Gadget Box *)
  94.   WarnGad1Ecken[1] := 0;              WarnGad1Ecken[2] := 0;
  95.   WarnGad1Ecken[3] := GadBreite+1;    WarnGad1Ecken[4] := 0;
  96.   WarnGad1Ecken[5] := GadBreite+1;    WarnGad1Ecken[6] := GadHoehe+1;
  97.   WarnGad1Ecken[7] := 0;              WarnGad1Ecken[8] := GadHoehe+1;
  98.   WarnGad1Ecken[9] := 0;              WarnGad1Ecken[10] := 0;
  99.  
  100.   WITH WarnGad1Border DO
  101.     leftEdge := -1;             topEdge     := -1;
  102.     frontPen := 4;             backPen     := 0;
  103.     drawMode := jam1;                  count       := 5;
  104.     xy       := ADR(WarnGad1Ecken);     nextBorder     := NIL;
  105.   END;
  106.  
  107.   WITH WarnGad1Text DO
  108.    leftEdge  := 3; topEdge := 1;
  109.    frontPen  := 12; backPen := 2;
  110.    drawMode  := jam2;
  111.    iText     := ADR("NA KLAR DOCH!");
  112.    iTextFont := NIL; nextText := NIL;
  113.   END;
  114.  
  115.   WITH WarnGad1 DO
  116.    leftEdge      :=  190;
  117.    topEdge      :=  RequHoehe - (GadHoehe + 13);
  118.    width      :=  GadBreite;
  119.    height     :=  GadHoehe;
  120.    flags      :=  GadgetFlagSet{};
  121.    activation     :=  ActivationFlagSet{endGadget, relVerify};
  122.    gadgetType     :=  boolGadget + reqGadget;
  123.    gadgetRender :=  ADR(WarnGad1Border);
  124.    gadgetText     :=  ADR(WarnGad1Text);
  125.    mutualExclude:=  LONGSET{};
  126.    nextGadget     :=  NIL;
  127.    selectRender :=  NIL;
  128.    specialInfo     :=  NIL;
  129.    userData     :=  NIL;
  130.    gadgetID    :=  1;
  131.   END;
  132.  END RichteEinGadgetJa;
  133.  
  134.  
  135. (******************************************************************)
  136. PROCEDURE RichteEinGadgetNein;
  137. BEGIN
  138.    (* Koordinaten für den Rand der Gadget Box *)
  139.   WarnGad2Ecken[1] := 0;              WarnGad2Ecken[2] := 0;
  140.   WarnGad2Ecken[3] := GadBreite+4;    WarnGad2Ecken[4] := 0;
  141.   WarnGad2Ecken[5] := GadBreite+4;    WarnGad2Ecken[6] := GadHoehe+1;
  142.   WarnGad2Ecken[7] := 0;              WarnGad2Ecken[8] := GadHoehe+1;
  143.   WarnGad2Ecken[9] := 0;              WarnGad2Ecken[10] := 0;
  144.  
  145.   WITH WarnGad2Border DO
  146.     leftEdge := -1;               topEdge := -1;
  147.     frontPen := 4;            backPen :=  0;
  148.     drawMode := jam2;             count   :=  5;
  149.     xy          := ADR(WarnGad2Ecken);
  150.     nextBorder  :=  NIL;(*ADR(WarnGad1Border);*)
  151.   END;
  152.  
  153.   WITH WarnGad2Text DO
  154.     leftEdge  := 5; topEdge := 1;
  155.     frontPen  := 12; backPen := 2;
  156.     drawMode  := jam2;
  157.     iText     := ADR("ACH MIST,NEE!");
  158.     iTextFont := NIL; nextText := NIL;
  159.   END;
  160.  
  161.   WITH WarnGad2 DO
  162.     leftEdge      :=  10;
  163.     topEdge      :=  RequHoehe - (GadHoehe + 13);
  164.     width      :=  GadBreite;
  165.     height    :=  GadHoehe;
  166.     flags      :=  GadgetFlagSet{};
  167.    activation     :=  ActivationFlagSet{endGadget, relVerify};
  168.    gadgetType     :=  boolGadget + reqGadget;
  169.    gadgetRender :=  ADR(WarnGad2Border);
  170.    gadgetText     :=  ADR(WarnGad2Text);
  171.    mutualExclude:=  LONGSET{};
  172.    nextGadget     :=  ADR(WarnGad1);
  173.    selectRender :=  NIL;
  174.    specialInfo     :=  NIL;
  175.    userData     :=  NIL;
  176.    gadgetID     :=  2
  177.   END;
  178.  END RichteEinGadgetNein;
  179.  
  180.  
  181. (******************************************************************)
  182. PROCEDURE RichteEinRequester;
  183. BEGIN
  184.   WarnReqEcken[1] := 0;              WarnReqEcken[2] := 0;
  185.   WarnReqEcken[3] := RequBreite-3;   WarnReqEcken[4] := 0;
  186.   WarnReqEcken[5] := RequBreite-3;   WarnReqEcken[6] := RequHoehe-3;
  187.   WarnReqEcken[7] := 0;              WarnReqEcken[8] := RequHoehe-3;
  188.   WarnReqEcken[9] := 0;              WarnReqEcken[10] := 0;
  189.  
  190.   WITH WarnReqBorder DO
  191.     leftEdge := 1;  topEdge := 1;
  192.     frontPen := 3;  backPen := 0;
  193.     drawMode := jam2; count := 5;
  194.     xy       := ADR(WarnReqEcken); nextBorder := NIL;
  195.   END;
  196.  
  197.   InitRequester(ADR(WarnRequest));
  198.  
  199.   WITH WarnRequest DO
  200.     leftEdge     := 30;
  201.     topEdge    := 210;
  202.     width     := RequBreite;
  203.     height    := RequHoehe;
  204.     reqGadget     := ADR(WarnGad2);
  205.     reqText     := ADR(WarnReqText);
  206.     reqBorder     := ADR(WarnReqBorder);
  207.     backFill     := 2;
  208.   END;
  209.  
  210.  END RichteEinRequester;
  211.  
  212.  
  213. (******************************************************************)
  214. PROCEDURE RichteEinRequesterText;
  215.  
  216.  PROCEDURE InitIText(VAR itext: IntuiText; L, T: CARDINAL; Next, text: ADDRESS);
  217.   BEGIN
  218.    WITH itext DO
  219.     leftEdge  := L+15; topEdge  := T;
  220.     frontPen  := 12;   backPen  := 2;
  221.     drawMode  := jam2; iText    := text;
  222.     iTextFont := NIL;  nextText := Next
  223.    END
  224.   END InitIText;
  225.  
  226. BEGIN
  227.   InitIText(WarnReqText[0], 5, 10, ADR(WarnReqText[1]),
  228.         ADR("IST DENN AUCH WIRKLICH EIN DRUCKER"));
  229.   InitIText(WarnReqText[1], 5, 20, NIL,
  230.         ADR("ANGESCHLOSSEN UND EINGESCHALTET ??"));
  231. END RichteEinRequesterText;
  232.  
  233.  
  234. (******************************************************************)
  235. (******************************************************************)
  236. BEGIN
  237.  RichteEinGadgetJa; RichteEinGadgetNein;
  238.  RichteEinRequesterText; RichteEinRequester;
  239. END WARNUNG.
  240.